﻿namespace DKE_Kinect.Entwicklung.Core
{
	/// <summary>
	/// Klasse um global Zugriff auf Dateilade/Speicher Funktionen zu haben
	/// </summary>
	public static class ContentManager
	{
		/// <summary>
		/// ContentManager der Spielinstanz mit Zugriff auf das Content-Projekt.
		/// </summary>
		static Microsoft.Xna.Framework.Content.ContentManager pContent = null;

		/// <summary>
		/// Konstruktor des Managers.
		/// </summary>
		/// <param name="_manager">ContentManager, der in der Spielinstanz an das ContentProjekt gebunden wurde.</param>
		public static void init (Microsoft.Xna.Framework.Content.ContentManager _manager)
		{
			pContent = _manager;
		}
		/// <summary>
		/// Funktion um Content zur Laufzeit zu laden.
		/// </summary>
		/// <typeparam name="T">Typ des zu ladenden Contents.</typeparam>
		/// <param name="path">Dateipfad im ContentProjekt, OHNE Dateiendung.</param>
		/// <returns>Geladenens ContentObject vom Typ T.</returns>
		public static T loadContent<T> (string path)
		{
			try
			{
				return pContent.Load<T>(path);
			}
			catch (System.NullReferenceException err)
			{
				throw new DkeException("Content Manager noch nicht initialisiert", err);
			}
		}
	}
}
